package com.gzc.service;

import java.util.List;

import com.gzc.model.Department;

/**
 * 部门业务逻辑
 * @author gzc
 *
 */
public interface IDepartmentService {

	public void add(Department dep);	
	public void update(Department dep);
	public void delete(Department dep);
	public void delete(int depId);
	
	public Department load(int id);	
	/** 获取所有部门 */
	public List<Department> listAllDep();
	
	/** 为某个部门添加一个管理部门 */
	public void addScopeDep(int depId, int sDepId);	
	/** 为某个部门添加一组管理部门 */
	public void addScopeDeps(int depId, int[] sDepIds);
	
	/** 删除某个部门的管理部门 */
	public void deleteScopeDep(int depId, int sDepId);	
	/** 删除某个部门对应的所有可以发文部门 */
	public void deleteScopeDep(int depId);
	
	/** 获取某个用户所能管理的部门 */
	public List<Department> listUserDep(int userId);
	/** 获取某个部门所能发文的部门 */
	public List<Department> listDepScopeDep(int depId);
	/** 获取可以发文的一组部门id */
	public List<Integer> listDepScopeDepId(int depId);
	
}
